#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int n, sum;
int main()
{
    cin >> n;
    vector<int> nums(n);
    vector<int> dp(n+1);
    for (int i = 0; i < n; i++)
    {
        cin >> nums[i];
    }
    sort(nums.begin(), nums.end());
    for (int i = 1; i <= n; i++)
    {
        sum += nums[i];
        dp[i] = sum;
    }
    for(int i=1; i<=n; )
    {
        while(dp[i]<sum/2) i++;
    }
    return 0;
}
// class Compare
// {
// public:
//     bool operator()(vector<int> &x, vector<int> &y)
//     {
//         return x.front() < y.front();
//     }
// };
// class Solution
// {
// public:
//     bool hostschedule(vector<vector<int>> &nums)
//     {
//         sort(nums.begin(), nums.end(), Compare());
//         for (int i = 1; i < nums.size(); i++)
//         {
//             if (nums[i - 1][1] > nums[i][0])
//                 return false;
//         }
//         return true;
//     }
// };

// string s;
// bool Isprime(int x)
// {
//     if (x < 2)
//         return false;
//     for (int i = 2; i < sqrt(x); i++)
//     {
//         if (x % i == 0)
//         {
//             return false;
//         }
//     }
//     return true;
// }
// int main()
// {
//     cin >> s;
//     int hash[26] = {0};

//     for (auto e : s)
//     {
//         hash[e - 'a']++;
//     }
//     int maxn = 0, minn = 0x7fff;
//     for (int i = 0; i < 26; i++)
//     {
//         if (hash[i])
//         {
//             maxn = max(maxn, hash[i]);
//             minn = min(minn, hash[i]);
//         }
//     }
//     int prime = maxn - minn;

//     if (Isprime(prime))
//     {
//         cout << "Lucky Word" << endl;
//         cout << prime << endl;
//     }
//     else
//     {
//         cout << "No Answer" << endl;
//         cout << 0 << endl;
//     }
//     return 0;
// }